var AllenSports=AllenSports||{}; AllenSports.ImagePanel=(function(){ var imagePanels=document.querySelectorAll('.image-panel_image-container'); var _bindEvents=function(){ for (var i=0; i < imagePanels.length; i++){ if(imagePanels[i].dataset.videoId){ imagePanels[i].addEventListener('click', playVideo); }};}; var playVideo=function(evt){ evt.preventDefault(); evt.stopPropagation(); var el=getImagePanel(evt.target); var player=new YT.Player('yt-' + el.dataset.videoId, { events: { 'onReady': onPlayerReady }}) }; var onPlayerReady=function(evt){ evt.target.a.classList.toggle('image-panel__video--active'); evt.target.playVideo(); }; var getImagePanel=function(childElement){ return childElement; if(childElement.classList.contains('image-panel')){ return childElement; } return getImagePanel(childElement.parentElement); }; _bindEvents(); })(); AllenSports.QuickQuoteModal=(function(){ var modal=document.querySelector('.quote__modal'); var modalClose=modal.querySelector('.quote__modal-close'); var quoteBtn=document.querySelectorAll('.home__help-box--quote'); var descriptionField=modal.querySelector('.quote__modal-form-field--description'); for (var i=0; i < quoteBtn.length; i++){ quoteBtn[i].addEventListener('click', function (e){ e.preventDefault(); if(typeof _gaq!=='undefined'){ _gaq.push(['_trackEvent', 'Quick Quote', 'Quick Quote Opened']); } AllenSports.QuickQuoteModal.openModal(false); }); } modalClose.addEventListener('click', function(e){ modal.classList.toggle('active'); }); var openModal=function(withDescription){ if(withDescription!==undefined&&withDescription){ showDescription(); }else{ hideDescription(); } modal.classList.add('active'); AllenSports.Header.navMenu.classList.remove('nav__menu--active'); }; var showDescription=function(){ descriptionField.style.display='block'; }; var hideDescription=function(){ descriptionField.style.display='none'; }; return { openModal: openModal, showDescription: showDescription };})(); function onYouTubeIframeAPIReady(){ window.YTReady=true; }; var AllenSports=AllenSports||{}; AllenSports.Blog=(function(){ var loadMoreButton=document.querySelector('.blog-articles_load-more > .btn'); var articleContainer=document.querySelector('.blog-articles'); var POST_API_URL='/wp-json/wp/v2/posts'; var MEDIA_API_URL='/wp-json/wp/v2/media'; var category; var page; var count; var getNextArticles=function(e){ var queryString='?page=' + page + '&per_page=' + count; if(category!=''){ queryString +='&categories=' + category; } e.preventDefault(); jQuery.get(POST_API_URL + queryString, function(data){ var articles=''; if(data.length){ for (var i=0; i < data.length; i++){ articles +=renderNextArticle(data[i]); } articleContainer.innerHTML +=articles; page++; }else{ loadMoreButton.style.display='none'; }} ); }; var renderNextArticle=function(article){ return '
' + '' + '
' + '
' + '
' + '
' + article.title.rendered + '
' + '
' + '
'; }; var init=function(){ if(loadMoreButton===null){ return false; } loadMoreButton.addEventListener('click', getNextArticles); category=loadMoreButton.dataset.category; page=loadMoreButton.dataset.page; count=loadMoreButton.dataset.count; }; return { init: init, getNextArticles: getNextArticles }})(); window.onload=AllenSports.Blog.init(); var AllenSports=AllenSports||{}; AllenSports.FastForms=(function(){ var init=function(){ if(window.fastFormsInit===true){ _getElements(); } document.addEventListener('fastforms.loaded', _getElements); }; var _getElements=function(){ var fastFormInputs=document.querySelectorAll('.ff-textarea, .ff-type-text, .ff-select-type'); for (var i=0; i < fastFormInputs.length; i++){ _bindListener(fastFormInputs[i]); }}; var _bindListener=function(element){ element.addEventListener('keyup', function (e){ if(e.target.value.length > 0){ e.target.parentNode.parentNode.querySelector('div').style.display='none'; e.target.style.width='100%'; }else{ e.target.parentNode.parentNode.querySelector('div').style.display='block'; }}); }; return { init: init };})(); window.onload=AllenSports.FastForms.init(); var AllenSports=AllenSports||{}; AllenSports.Order=(function(){ var submitOrderDetailsRoster=function(evt){ evt.preventDefault(); var form=evt.target; var arr=jQuery(form).serializeArray(); var data=new FormData(); arr.forEach(function(item){ data.append(item.name, item.value); }); data.append('action', 'submit_order_details_roster'); jQuery.ajax({ url: asw.ajax_url, type: 'POST', contentType: false, processData: false, data: data, success: function(resp){ try { form.classList.add('roster-form--submitted'); var table=form.querySelector('.order-detail__roster-table'); var tbody=table.querySelector('tbody'); table.querySelectorAll('select').forEach(function(node){ node.setAttribute('disabled', 'disabled'); }); table.querySelectorAll('input').forEach(function(node){ node.setAttribute('readonly', 'readonly'); }); } catch (err){ console.error('error in parse', err); }}, error: function(err){ console.log('err', err); }}); }; var createFormListener=function(forms){ for (var i=0; i < forms.length; i++){ forms[i].addEventListener('submit', submitOrderDetailsRoster); }}; var hideRawRosterData=function(){ var metaLists=document.querySelectorAll('.wc-item-meta .wc-item-meta-label'); console.log(metaLists); metaLists.forEach(function(node){ if(node.innerHTML==='roster:'){ node.parentNode.style.display='none'; }}); } var init=function(){ var forms=document.querySelectorAll('.order-details__roster-form'); if(forms.length){ createFormListener(forms); } if(document.body.classList.contains('woocommerce-order-received')||document.body.classList.contains('woocommerce-view-order')){ hideRawRosterData(); }}; return { init: init };})(); window.onload=AllenSports.Order.init(); if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),r=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,r)),"string"==typeof e?s[e](o):r.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=".navbar-fixed-top, .navbar-fixed-bottom",this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.4.1",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var r=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",r).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):r()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; function checkSum(){ if(osum==sum){ return true; }else{ return false; }} if(checkSum()==true){ form=true; }else{ alert("Security Check Failed"); $('#sum').addClass('error'); form=false; } if(email==''){ $('#email').addClass('error'); form=false; }else if(email_regex.test(email)==false){ $('#email').addClass('error'); form=false; } if(name==''){ $('#name').addClass('error'); form=false; } if(phone==''){ $('#phone').addClass('error'); form=false; } if(message==''){ $('#message').addClass('error'); form=false; } if(form==false){ $('#error-msg').html('*Please correctly fill highlighted fields').show(); } if(form){ $.ajax({ url: '../assets/php/email.php', type: 'POST', data: $('#contact-main').serialize(), success: function(results){ $('#thanks').show(); setTimeout(function(){ $('#thanks').fadeOut('fast'); }, 10000); $('#contact-main')[0].reset(); }, error: function(data){ $('#error-msg').html('There has been a major malfunction!'); }}); } return false; }); $("#contact-modal").submit(function(){ $('#contact-modal .error').removeClass('error'); $('#contact-modal #error-msg1').hide(); var osum=$("#osum1").val(); var sum=$("#sum1").val(); var form=true; var name=$('#name1').val(); var email=$('#email1').val(); var message=$('#message1').val(); email_regex=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; function checkSum(){ if(osum==sum){ return true; }else{ return false; }} if(checkSum()==true){ form=true; }else{ alert("Security Check Failed"); $('#sum1').addClass('error'); form=false; } if(email==''){ $('#email1').addClass('error'); form=false; }else if(email_regex.test(email)==false){ $('#email1').addClass('error'); form=false; } if(name==''){ $('#name1').addClass('error'); form=false; } if(message==''){ $('#message1').addClass('error'); form=false; } if(form==false){ $('#error-msg1').html('*Please correctly fill highlighted fields').show(); } if(form){ $.ajax({ url: '../assets/php/email.php', type: 'POST', data: $('#contact-modal').serialize(), success: function(results){ $('#thanks1').show(); setTimeout(function(){ $('#thanks1').fadeOut('fast'); }, 10000); $('#contact-modal')[0].reset(); }}); } return false; }); }); jQuery(document).ready(function($){ jQuery('form#commentform').attr("enctype", "multipart/form-data").attr("encoding", "multipart/form-data"); jQuery("#commentform").submit(function(event){ if(ajax_object.ivole_recaptcha==='1'){ var recaptcha=jQuery("#g-recaptcha-response").val(); if(recaptcha===""){ event.preventDefault(); alert("Please confirm that you are not a robot"); }} }); jQuery(".ivole-comment-a").click(function(t){ if(ajax_object.ivole_disable_lightbox==='0'){ t.preventDefault(); var o=jQuery(".pswp")[0]; var pics=jQuery(this).parent().parent().find("img"); var this_pic=jQuery(this).find("img"); var inx=0; if(pics.length > 0&&this_pic.length > 0){ var a=[]; for (i=0; i < pics.length; i++){ a.push({ src: pics[i].src, w: pics[i].naturalWidth, h: pics[i].naturalHeight, title: pics[i].alt }); if(this_pic[0].src==pics[i].src){ inx=i; }} var r={ index: inx }; new PhotoSwipe(o, PhotoSwipeUI_Default, a, r).init(); }} }); jQuery("a.ivole-a-button-text").on("click", function(t){ t.preventDefault(); var reviewIDhtml=jQuery(this).attr('id'); if(reviewIDhtml!=null){ var reviewID=reviewIDhtml.match(/\d+/)[0]; var data={ "action": "ivole_vote_review", "reviewID": reviewID, "upvote": 1, "security": ajax_object.ajax_nonce }; if(reviewIDhtml.indexOf("ivole-reviewyes-") >=0){ data.upvote=1; }else if(reviewIDhtml.indexOf("ivole-reviewno-") >=0){ data.upvote=0; }else{ return; } jQuery("#ivole-reviewyes-" + reviewID).parent().parent().parent().parent().hide(); jQuery("#ivole-reviewno-" + reviewID).parent().parent().parent().parent().hide(); jQuery("#ivole-reviewvoting-" + reviewID).text(ajax_object.text_processing); jQuery.post(ajax_object.ajax_url, data, function(response){ if(response.code===0){ jQuery("#ivole-reviewvoting-" + reviewID).text(ajax_object.text_thankyou); }else if(response.code===1){ jQuery("#ivole-reviewvoting-" + reviewID).text(ajax_object.text_thankyou); }else if(response.code===2){ jQuery("#ivole-reviewvoting-" + reviewID).text(ajax_object.text_thankyou); }else if(response.code===3){ jQuery("#ivole-reviewvoting-" + reviewID).text(ajax_object.text_error1); }else{ jQuery("#ivole-reviewvoting-" + reviewID).text(ajax_object.text_error2); }}, "json"); }}); jQuery(".ivole-video-a, .iv-comment-video-icon").click(function(t){ if(! jQuery("#iv-comment-videos-id").hasClass("iv-comment-videos-modal")){ var tt=t.target.closest("[id^='iv-comment-video-id-']"); var iid="#" + tt.id; jQuery("#iv-comment-videos-id").addClass("iv-comment-videos-modal"); jQuery(iid).addClass("iv-comment-video-modal"); jQuery(iid).find("video").prop("controls", true); jQuery(iid).find(".iv-comment-video-icon").hide(); jQuery(iid).find("video").get(0).play(); jQuery(iid).css({ "top": "50%", "margin-top": function(){ return -$(this).outerHeight() / 2 }}); return false; }}); jQuery("#iv-comment-videos-id").click(function(t){ if(jQuery("#iv-comment-videos-id").hasClass("iv-comment-videos-modal")){ jQuery("#iv-comment-videos-id").removeClass("iv-comment-videos-modal"); var vids=jQuery("#iv-comment-videos-id").find("[id^='iv-comment-video-id-']"); var i=0; var iid=""; for(i=0; i < vids.length; i++){ iid="#" + vids[i].id; if(jQuery(iid).hasClass("iv-comment-video-modal")){ jQuery(iid).removeClass("iv-comment-video-modal"); jQuery(iid).find("video").get(0).pause(); jQuery(iid).find("video").prop("controls", false); jQuery(iid).find(".iv-comment-video-icon").show(); jQuery(iid).removeAttr("style"); }} return false; }}); }); jQuery(function(t){(function(){var e,n,r,a,i,o,l,u,s,c,h,p,f,g,v,d,m,y,C,T,w,$,D,S=[].slice,k=[].indexOf||function(t){for(var e=0,n=this.length;e9&&(e-=9),a+=e;return a%10==0},h=function(t){var e;return null!=t.prop("selectionStart")&&t.prop("selectionStart")!==t.prop("selectionEnd")||!(null==("undefined"!=typeof document&&null!==document&&null!=(e=document.selection)?e.createRange:void 0)||!document.selection.createRange().text)},$=function(t,e){var n,r,a,i,o;try{r=e.prop("selectionStart")}catch(l){l,r=null}if(i=e.val(),e.val(t),null!==r&&e.is(":focus"))return r===i.length&&(r=t.length),i!==t&&(o=i.slice(r-1,+r+1||9e9),n=t.slice(r-1,+r+1||9e9),a=t[r],/\d/.test(a)&&o===a+" "&&n===" "+a&&(r+=1)),e.prop("selectionStart",r),e.prop("selectionEnd",r)},m=function(t){var e,n,r,a,i,o;for(null==t&&(t=""),"0123456789","0123456789",a="",i=0,o=(e=t.split("")).length;i-1&&(n="0123456789"[r]),a+=n;return a},d=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var t;return t=n.val(),t=m(t),t=t.replace(/\D/g,""),$(t,n)})},g=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var e;return e=n.val(),e=m(e),e=t.payment.formatCardNumber(e),$(e,n)})},l=function(n){var r,a,i,o,l,u,s;if(i=String.fromCharCode(n.which),/^\d+$/.test(i)&&(r=t(n.currentTarget),s=r.val(),a=e(s+i),o=(s.replace(/\D/g,"")+i).length,u=16,a&&(u=a.length[a.length.length-1]),!(o>=u||null!=r.prop("selectionStart")&&r.prop("selectionStart")!==s.length)))return(l=a&&"amex"===a.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/).test(s)?(n.preventDefault(),setTimeout(function(){return r.val(s+" "+i)})):l.test(s+i)?(n.preventDefault(),setTimeout(function(){return r.val(s+i+" ")})):void 0},i=function(e){var n,r;if(n=t(e.currentTarget),r=n.val(),8===e.which&&(null==n.prop("selectionStart")||n.prop("selectionStart")===r.length))return/\d\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s$/,""))})):/\s\d?$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d$/,""))})):void 0},v=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var e;return e=n.val(),e=m(e),e=t.payment.formatExpiry(e),$(e,n)})},u=function(e){var n,r,a;if(r=String.fromCharCode(e.which),/^\d+$/.test(r))return n=t(e.currentTarget),a=n.val()+r,/^\d$/.test(a)&&"0"!==a&&"1"!==a?(e.preventDefault(),setTimeout(function(){return n.val("0"+a+" / ")})):/^\d\d$/.test(a)?(e.preventDefault(),setTimeout(function(){var t,e;return t=parseInt(a[0],10),(e=parseInt(a[1],10))>2&&0!==t?n.val("0"+t+" / "+e):n.val(a+" / ")})):void 0},s=function(e){var n,r,a;if(r=String.fromCharCode(e.which),/^\d+$/.test(r))return n=t(e.currentTarget),a=n.val(),/^\d\d$/.test(a)?n.val(a+" / "):void 0},c=function(e){var n,r,a;if("/"===(a=String.fromCharCode(e.which))||" "===a)return n=t(e.currentTarget),r=n.val(),/^\d$/.test(r)&&"0"!==r?n.val("0"+r+" / "):void 0},o=function(e){var n,r;if(n=t(e.currentTarget),r=n.val(),8===e.which&&(null==n.prop("selectionStart")||n.prop("selectionStart")===r.length))return/\d\s\/\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s\/\s$/,""))})):void 0},f=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var t;return t=n.val(),t=m(t),t=t.replace(/\D/g,"").slice(0,4),$(t,n)})},w=function(t){var e;return!(!t.metaKey&&!t.ctrlKey)||32!==t.which&&(0===t.which||(t.which<33||(e=String.fromCharCode(t.which),!!/[\d\s]/.test(e))))},C=function(n){var r,a,i,o;if(r=t(n.currentTarget),i=String.fromCharCode(n.which),/^\d+$/.test(i)&&!h(r))return o=(r.val()+i).replace(/\D/g,""),(a=e(o))?o.length<=a.length[a.length.length-1]:o.length<=16},T=function(e){var n,r,a;if(n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!h(n))return a=n.val()+r,!((a=a.replace(/\D/g,"")).length>6)&&void 0},y=function(e){var n,r;if(n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!h(n))return(n.val()+r).length<=4},D=function(e){var n,a,i,o,l;if(n=t(e.currentTarget),l=n.val(),o=t.payment.cardType(l)||"unknown",!n.hasClass(o))return a=function(){var t,e,n;for(n=[],t=0,e=r.length;t=0&&(!1===n.luhn||p(t))))},t.payment.validateCardExpiry=function(e,n){var r,a,i;return"object"==typeof e&&"month"in e&&(e=(i=e).month,n=i.year),!(!e||!n)&&(e=t.trim(e),n=t.trim(n),!!/^\d+$/.test(e)&&(!!/^\d+$/.test(n)&&(1<=e&&e<=12&&(2===n.length&&(n=n<70?"20"+n:"19"+n),4===n.length&&(a=new Date(n,e),r=new Date,a.setMonth(a.getMonth()-1),a.setMonth(a.getMonth()+1,1),a>r)))))},t.payment.validateCardCVC=function(e,r){var a,i;return e=t.trim(e),!!/^\d+$/.test(e)&&(null!=(a=n(r))?(i=e.length,k.call(a.cvcLength,i)>=0):e.length>=3&&e.length<=4)},t.payment.cardType=function(t){var n;return t?(null!=(n=e(t))?n.type:void 0)||null:null},t.payment.formatCardNumber=function(n){var r,a,i,o;return n=n.replace(/\D/g,""),(r=e(n))?(i=r.length[r.length.length-1],n=n.slice(0,i),r.format.global?null!=(o=n.match(r.format))?o.join(" "):void 0:null!=(a=r.format.exec(n))?(a.shift(),(a=t.grep(a,function(t){return t})).join(" ")):void 0):n},t.payment.formatExpiry=function(t){var e,n,r,a;return(n=t.match(/^\D*(\d{1,2})(\D+)?(\d{1,4})?/))?(e=n[1]||"",r=n[2]||"",(a=n[3]||"").length>0?r=" / ":" /"===r?(e=e.substring(0,1),r=""):2===e.length||r.length>0?r=" / ":1===e.length&&"0"!==e&&"1"!==e&&(e="0"+e,r=" / "),e+r+a):""}}).call(this)}); (function(){ var indexOf=[].indexOf||function(item){ for (var i=0, l=this.length; i < l; i++){ if(i in this&&this[i]===item) return i; } return -1; }; jQuery(document).ready(function($){ "use strict"; return window.SV_WC_Payment_Form_Handler=(function(){ function SV_WC_Payment_Form_Handler(args){ this.id=args.id; this.id_dasherized=args.id_dasherized; this.plugin_id=args.plugin_id; this.type=args.type; this.csc_required=args.csc_required; this.csc_required_for_tokens=args.csc_required_for_tokens; this.enabled_card_types=args.enabled_card_types; if($('form.checkout').length){ this.form=$('form.checkout'); this.handle_checkout_page(); }else if($('form#order_review').length){ this.form=$('form#order_review'); this.handle_pay_page(); }else if($('form#add_payment_method').length){ this.form=$('form#add_payment_method'); this.handle_add_payment_method_page(); }else{ console.log('No payment form found!'); return; } this.params=window["sv_wc_payment_gateway_payment_form_params"]; if(this.type==='echeck'){ this.form.on('click', '.js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check', (function(_this){ return function(){ return _this.handle_sample_check_hint(); };})(this)); } $(document).trigger('sv_wc_payment_form_handler_init', { id: this.id, instance: this });} SV_WC_Payment_Form_Handler.prototype.handle_checkout_page=function(){ if(this.type==='credit-card'){ $(document.body).on('updated_checkout', (function(_this){ return function(){ return _this.format_credit_card_inputs(); };})(this)); } $(document.body).on('updated_checkout', (function(_this){ return function(){ return _this.set_payment_fields(); };})(this)); $(document.body).on('updated_checkout', (function(_this){ return function(){ return _this.handle_saved_payment_methods(); };})(this)); return this.form.on("checkout_place_order_" + this.id, (function(_this){ return function(){ return _this.validate_payment_data(); };})(this)); }; SV_WC_Payment_Form_Handler.prototype.handle_pay_page=function(){ this.set_payment_fields(); if(this.type==='credit-card'){ this.format_credit_card_inputs(); } this.handle_saved_payment_methods(); return this.form.submit((function(_this){ return function(){ if($('#order_review input[name=payment_method]:checked').val()===_this.id){ return _this.validate_payment_data(); }};})(this)); }; SV_WC_Payment_Form_Handler.prototype.handle_add_payment_method_page=function(){ this.set_payment_fields(); if(this.type==='credit-card'){ this.format_credit_card_inputs(); } return this.form.submit((function(_this){ return function(){ if($('#add_payment_method input[name=payment_method]:checked').val()===_this.id){ return _this.validate_payment_data(); }};})(this)); }; SV_WC_Payment_Form_Handler.prototype.set_payment_fields=function(){ return this.payment_fields=$(".payment_method_" + this.id); }; SV_WC_Payment_Form_Handler.prototype.validate_payment_data=function(){ var handler, valid; if(this.form.is('.processing')){ return false; } this.saved_payment_method_selected=this.payment_fields.find('.js-sv-wc-payment-gateway-payment-token:checked').val(); valid=this.type==='credit-card' ? this.validate_card_data():this.validate_account_data(); handler=$(document.body).triggerHandler('sv_wc_payment_form_valid_payment_data', { payment_form: this, passed_validation: valid })!==false; return valid&&handler; }; SV_WC_Payment_Form_Handler.prototype.format_credit_card_inputs=function(){ $('.js-sv-wc-payment-gateway-credit-card-form-account-number').payment('formatCardNumber').change(); $('.js-sv-wc-payment-gateway-credit-card-form-expiry').payment('formatCardExpiry').change(); $('.js-sv-wc-payment-gateway-credit-card-form-csc').payment('formatCardCVC').change(); return $('.js-sv-wc-payment-gateway-credit-card-form-input').on('change paste keyup', (function(_this){ return function(){ return _this.do_inline_credit_card_validation(); };})(this)); }; SV_WC_Payment_Form_Handler.prototype.do_inline_credit_card_validation=function(){ var $card_number, $card_type, $csc, $expiry; $card_number=$('.js-sv-wc-payment-gateway-credit-card-form-account-number'); $expiry=$('.js-sv-wc-payment-gateway-credit-card-form-expiry'); $csc=$('.js-sv-wc-payment-gateway-credit-card-form-csc'); $card_type=$.payment.cardType($card_number.val()); if(indexOf.call(this.enabled_card_types, $card_type) < 0){ $card_number.addClass('invalid-card-type'); }else{ $card_number.removeClass('invalid-card-type'); } if($.payment.validateCardExpiry($expiry.payment('cardExpiryVal'))){ $expiry.addClass('identified'); }else{ $expiry.removeClass('identified'); } if($.payment.validateCardCVC($csc.val())){ return $csc.addClass('identified'); }else{ return $csc.removeClass('identified'); }}; SV_WC_Payment_Form_Handler.prototype.validate_card_data=function(){ var account_number, csc, errors, expiry; errors=[]; csc=this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-csc').val(); if(csc!=null){ if(csc){ if(/\D/.test(csc)){ errors.push(this.params.cvv_digits_invalid); } if(csc.length < 3||csc.length > 4){ errors.push(this.params.cvv_length_invalid); }}else if(this.csc_required){ if(!this.saved_payment_method_selected||this.csc_required_for_tokens){ errors.push(this.params.cvv_missing); }} } if(!this.saved_payment_method_selected){ account_number=this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-account-number').val(); expiry=$.payment.cardExpiryVal(this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-expiry').val()); account_number=account_number.replace(/-|\s/g, ''); if(!account_number){ errors.push(this.params.card_number_missing); }else{ if(account_number.length < 12||account_number.length > 19){ errors.push(this.params.card_number_length_invalid); } if(/\D/.test(account_number)){ errors.push(this.params.card_number_digits_invalid); } if(!$.payment.validateCardNumber(account_number)){ errors.push(this.params.card_number_invalid); }} if(!$.payment.validateCardExpiry(expiry)){ errors.push(this.params.card_exp_date_invalid); }} if(errors.length > 0){ this.render_errors(errors); return false; }else{ this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-account-number').val(account_number); return true; }}; SV_WC_Payment_Form_Handler.prototype.validate_account_data=function(){ var account_number, errors, routing_number; if(this.saved_payment_method_selected){ return true; } errors=[]; routing_number=this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-routing-number').val(); account_number=this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val(); if(!routing_number){ errors.push(this.params.routing_number_missing); }else{ if(9!==routing_number.length){ errors.push(this.params.routing_number_length_invalid); } if(/\D/.test(routing_number)){ errors.push(this.params.routing_number_digits_invalid); }} if(!account_number){ errors.push(this.params.account_number_missing); }else{ if(account_number.length < 3||account_number.length > 17){ errors.push(this.params.account_number_length_invalid); } if(/\D/.test(account_number)){ errors.push(this.params.account_number_invalid); }} if(errors.length > 0){ this.render_errors(errors); return false; }else{ this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val(account_number); return true; }}; SV_WC_Payment_Form_Handler.prototype.render_errors=function(errors){ $('.woocommerce-error, .woocommerce-message').remove(); this.form.prepend('
  • ' + errors.join('
  • ') + '
'); this.form.removeClass('processing').unblock(); this.form.find('.input-text, select').blur(); return $('html, body').animate({ scrollTop: this.form.offset().top - 100 }, 1000); }; SV_WC_Payment_Form_Handler.prototype.handle_saved_payment_methods=function(){ var $csc_field, $new_payment_method_selection, csc_required, csc_required_for_tokens, id_dasherized; id_dasherized=this.id_dasherized; csc_required=this.csc_required; csc_required_for_tokens=this.csc_required_for_tokens; $new_payment_method_selection=$("div.js-wc-" + id_dasherized + "-new-payment-method-form"); $csc_field=$new_payment_method_selection.find('.js-sv-wc-payment-gateway-credit-card-form-csc').closest('.form-row'); $("input.js-wc-" + this.id_dasherized + "-payment-token").change(function(){ var tokenized_payment_method_selected; tokenized_payment_method_selected=$("input.js-wc-" + id_dasherized + "-payment-token:checked").val(); if(tokenized_payment_method_selected){ $new_payment_method_selection.slideUp(200); if(csc_required_for_tokens){ $csc_field.removeClass('form-row-last').addClass('form-row-first'); return $new_payment_method_selection.after($csc_field); }}else{ $new_payment_method_selection.slideDown(200); if(csc_required_for_tokens){ $csc_field.removeClass('form-row-first').addClass('form-row-last'); return $new_payment_method_selection.find('.js-sv-wc-payment-gateway-credit-card-form-expiry').closest('.form-row').after($csc_field); }} }).change(); $('input#createaccount').change(function(){ var $parent_row; $parent_row=$("input.js-wc-" + id_dasherized + "-tokenize-payment-method").closest('p.form-row'); if($(this).is(':checked')){ $parent_row.slideDown(); return $parent_row.next().show(); }else{ $parent_row.hide(); return $parent_row.next().hide(); }});if(!$('input#createaccount').is(':checked')){ return $('input#createaccount').change(); }}; SV_WC_Payment_Form_Handler.prototype.handle_sample_check_hint=function(){ var $sample_check; $sample_check=this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-sample-check'); if($sample_check.is(":visible")){ return $sample_check.slideUp(); }else{ return $sample_check.slideDown(); }}; SV_WC_Payment_Form_Handler.prototype.block_ui=function(){ return this.form.block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 }});}; SV_WC_Payment_Form_Handler.prototype.unblock_ui=function(){ return this.form.unblock(); }; return SV_WC_Payment_Form_Handler; })(); });}).call(this);